-
Notifications
You must be signed in to change notification settings - Fork 163
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
環境変数 SKIP_CREATE_GITHASH が 1 にセットしている場合、githash.h の生成をスキップする #319
環境変数 SKIP_CREATE_GITHASH が 1 にセットしている場合、githash.h の生成をスキップする #319
Conversation
テスト方法の追加
|
リファクタリングとは、振る舞いを変えずにコードを変更することだと思っています。 変わらないように細工できるメリットがよくわかっていません。 まずは、これができると何がうれしいのか、についての説明をお願いします。 |
文字コード変換のときや、リソースファイルで複数行に分かれているときなどに |
微妙だと感じました。
通常、ソースコードの変更は不具合の修正や機能追加で行われるものです。 というか、githash が変更されると困る理由を突き詰めて考えてみると、「githashを変更しないオプションを追加する」という対応は要らない気がします。 githashが変更されると困る 問題の本質は、本来リソースに格納すべき情報をcppに直接埋め込んでいることにあると思います。 asmの完全一致で確認できる変更は今後も結構あると思っています。
これらの対応を計画していて「~のために必要」というのは理解できます。 |
#320 等リソースファイルの変更で全くバイナリが変わっていないことを確認するために cpp の検証だけに使うのではありません。 |
OK、ようやく言ってる意味が分かってきました。 ぼくは cpp→obj の変換で、内容を何も変えなくてもバイナリが異なることからオブジェクトファイルにはタイムスタンプ情報が埋め込まれるものだと思っていました。 rc → res の変換については今まで確認を行ったことはありませんでした。「同じ」オブジェクトファイルなんだからタイムスタンプが埋め込まれて、毎回意味の分からない差異が生まれるんだろうと思っていました。 「resは違う」って言ってますよね? そこがうまく伝わっていませんでした。 ・・・という前提で再レビュー行ってきます。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTMです。
githash生成をスキップする手順は、そのうちどこかにまとまるもんだと思ってます。
sakura/githash.bat
Outdated
@@ -88,6 +88,20 @@ if "%APPVEYOR_BUILD_URL_VALID%" == "1" ( | |||
set GITHASH_H=%OUT_DIR%\githash.h | |||
set GITHASH_H_TMP=%GITHASH_H%.tmp | |||
|
|||
@rem check if skip creation of %GITHASH_H% | |||
set VALID_CREATE_GITHASH=1 | |||
if "%SKIP_CREATE_GITHASH%" == "1" ( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@rem set SKIP_CREATE_GITHASH=1
ってあった方がいいような・・・。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
理解しました。OKです。
githash.h の生成をスキップするようにする。
a3904da
to
e79488c
Compare
後でやろうと思ってしましたが、 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
対応ありがとうございます。再LGTMです。
sakura/githash.bat
Outdated
@@ -88,6 +88,20 @@ if "%APPVEYOR_BUILD_URL_VALID%" == "1" ( | |||
set GITHASH_H=%OUT_DIR%\githash.h | |||
set GITHASH_H_TMP=%GITHASH_H%.tmp | |||
|
|||
@rem check if skip creation of %GITHASH_H% | |||
set VALID_CREATE_GITHASH=1 | |||
if "%SKIP_CREATE_GITHASH%" == "1" ( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
理解しました。OKです。
「再」じゃないね 😄 |
@m-tmatma 今回の githash.h のスキップ機能は必要な機能ではあるのですが、このスキップ機能を意識するのはごく少数のプログラマだけのはずです。そういった細かい情報はできれば Wiki のほうに書いたほうが README.md がスッキリして良いと思うのですがどうでしょうか。 |
#341 で更新しました。 |
…e-githash-if-not-exists 環境変数 SKIP_CREATE_GITHASH が 1 にセットしている場合、githash.h の生成をスキップする
環境変数 SKIP_CREATE_GITHASH が 1 にセットしていてかつ githash.h が存在しない場合
githash.h の生成をスキップできるようにする。
何らかのリファクタリングを行ったあと、コード (asm) あるいはリソース (res ファイル)が
完全一致するか確認するために使用する。
通常ではコミットハッシュが異なると、githash.h の内容が異なるのでバイナリが一致しない。
リファクタリングしたときに生成コードとres ファイルの完全一致を確認できると確認がしやすい。
※ ローカルビルド用の機能です。
※ 別途ビルド関連の説明を行う markdown を更新する PR を投げる予定です。
テスト方法